window.userName = $('._buryDot-userEmail')[0] ? $('._buryDot-userEmail').text() :'游客';
$(function() {

	//TODO  埋点--数据_调试 1.3
	$(document).on('click','._debugTool',function() {
		var $this = $(this);
		zhuge.track('数据_调试', {
			'用户':userName,
			'服务名称': $('._service_id').text(),
			'api名称': $('._api_name.active').text()
		},function(){
			var locaHref = $this.attr('href');
			window.location.href = locaHref ;
		});
		return false;
	})

	template.helper('toUpperCase', toUpString);

	//获取选中api_id
	if(parseInt($('._selected_api_id').val())) {
		$("._api_name").each(function() {
			var that = $(this);
			if(that.attr('data-id') == $('._selected_api_id').val()) {
				$('._api_name').removeClass('active');
				that.addClass('active');
			}
		});
	}

	//默认值
	var api_id = $("._api_name.active").attr('data-id');
	var service_id = $("._api_name.active").attr('data-sid');
	var api_name = $("._api_name.active").attr('data-name');
	var api_name_en = $("._api_name.active").attr('data-ename');
	var service_name_en = $('._api_name.active').attr('data-ser-ename');
	var api_auth = $("._api_name.active").attr('data-auth');

	var fd = [0]; // 0 免费 / 1查询 / 2收费

	if(api_id) {
		getApiInfo(); //请求数据		
	} else {
		//TODO 没有api时显示出错
		toastr.error('没有该api', null, opts);
	}

	//切换api
	$('._api_name').click(function() {
		var that = $(this);
		var auth_status = that.attr('data-auth');
		getApiInfo({ //切换tab信息
			api_id: that.attr('data-id')
		});
		//样式
		$('._api_name').removeClass('active');
		that.addClass('active');
		//tab选中第一个
		$('._navTab li').removeClass('active');
		$('._navTab li:eq(0)').addClass('active');
		//更改data
		api_id = $("._api_name.active").attr('data-id');
		service_id = $("._api_name.active").attr('data-sid');
		api_name = $("._api_name.active").attr('data-name');
		api_name_en = $("._api_name.active").attr('data-ename');
		service_name_en = $('._api_name.active').attr('data-ser-ename');
		api_auth = $("._api_name.active").attr('data-auth');
	});

	//api对应数据
	function getApiInfo(option, req_head, reps_head) {		
		document.getElementById('service_api_content').innerHTML='<div class="wuss"><span><i class="fa fa-spin fa-spinner"></i>正在奋力加载中...</span></div>';
		var default_option = {
			api_id: $("._api_name.active").attr('data-id') //默认选中的api_id
		}

		var req_head = $("#req_head").val();
		var resp_head = $("#resp_head").val();

		option = $.extend({}, default_option, option);
		fd = 1;
		$.ajax({
			url: '/Index/ajaxApiinfo.html',
			type: 'POST',
			dataType: 'json',
			async: true,
			data: option,
			success: function(req) {
				$('#service_api_content').waitMe('hide');
				if(req.status == 200) {
					//渲染数据
					if(req_head != '' && req.data) {
						req.data.service_request_heads = JSON.parse(req_head);
					}
					if(resp_head != '' && req.data) {
						req.data.service_response_heads = JSON.parse(resp_head);
					}
					if(req.data) {
						var html = template('service_api_id', {
							list: req.data
						});
						document.getElementById('service_api_content').innerHTML = html;
						//JSON代码样式
						hljs.initHighlightingOnLoad();
						$('._exampleCode').each(function(i, block) {
							hljs.highlightBlock(block);
						});
						//显示价钱
						if(req.data.api_is_charge == 1) {
							fd = 2;
							$('._unitPrice').html('<i class="fa fa-yen"></i>' + separateFouth(req.data.min_price));
						} else {
							fd = 0;
							$('._unitPrice').html('免费');
						}
						if(req.data.api_charge_rules) {
							var inner = JSON.parse(req.data.api_charge_rules);
							var innHtmlarr = [];
							for(var i = 0; i < inner.length; i++) {
								var _lsData = inner[i];
								innHtmlarr.push('<li' + (i === 0 ? ' class="active"' : '') + ' packageData="' + _lsData.package_name + '"><span>￥' +
									separateFouth(_lsData.package_price) + '</span><h5>' + _lsData.package_cycle + '</h5>接口调用' +
									_lsData.limit_num + '次' +
									(_lsData.return_num ? ' 每次返回' + _lsData.return_num + '条' : '') + ' ' + (_lsData.con_num ? '并发' + _lsData.con_num + '次/秒</li>' : '</li>'));
							}
						}
						$('._mealsType').html(innHtmlarr);

					}
					//TODO 埋点--点击api 1.3				
					var serviceName = $('._service_id').text();
					var apiName = $('._api_name.active').text();
					var minPrice = $('._unitPrice').text();
					zhuge.track('详情_选择API', {
						'用户':userName,
						'服务名称': serviceName,
						'API名称': apiName,
						'最低价格': minPrice
					});
				} else {
					toastr.error(req.msg, null, opts);
				}
				return false;
			},
			error: function() {
				toastr.error('系统异常', null, opts);
			}
		});

	}

	$('._buyBtn').on('click', function() {
		//TODO 埋点--点击购买  1.3
		var apiName = $('._api_name.active ').text();
		var serviceName = $('._service_id').text();
		zhuge.track('购买', {
			'用户':userName,
			'api名称': apiName,
			'服务名称': serviceName
		});
		switch(fd) {
			case 0:
				$('._loginBox ._loginText').html('免费注册<br/>免费使用');
				postDatas();
				break;
			case 1:
				toastr.error("您的操作频率过快,请稍后再试!", null, opts);
				break;
			case 2: //收费套餐		
				$('._loginBox ._loginText').html('使用数据<br/>只需十秒');
				$('#_mealsTypeDiv').modal('show')
				zhuge.track('购买_选择套餐', {
					'套餐名称': $('#_mealsTypeDiv li.active h5').text(),
					'价格': $('#_mealsTypeDiv li.active span').text(),
					'所属api': $('a._api_name.active').text(),
					'所属服务': $('._service_id').text()
				});
				break;
		}
	})

	$('._submit').click(function() { //提交按钮
			postDatas($('#_mealsTypeDiv li.active').attr('packagedata'));
		})
		/**
		 * 收费提交，请求数据
		 * @param {Object} package_name
		 */
	function postDatas(package_name) {
		var _data = {
				service_id: $('a._api_name.active')[0].getAttribute('data-sid'),
				api_id: $('a._api_name.active')[0].getAttribute('data-id'),
				package_name: package_name || null
			}
			//TODO 埋点--提交 1.3
			//埋点--对象--提交套餐/关闭弹窗
		zhuge.track('购买_选择套餐_提交', {
			'用户':userName,
			'套餐名称': $('._mealsType li.active h5').text(),
			'价格': $('._mealsType li.active span').text(),
			'所属api': $('a._api_name.active').text(),
			'所属服务': $('._service_id').text()
		})

		$.post('/pay/ajaxApplyBuy', _data, function(data) {
			switch(data.status) {
				case 200: // 正确
					if(_data.package_name) {
						formSubmit({
							url: '/pay/info',
							data: _data,
							type: 'post'
						});
					} else {
						toastr.success('您已购买成功', null, opts);
					}
					break;
				case 4001:
					//	提醒登录
					$("#_mealsTypeDiv ._closeSpan").trigger('click'); //提交框隐藏					
					$('._loginBox').modal('show');
					break;
				case 4006:
					toastr.error(data.msg, null, opts)
					break;
				case 4002: //弹出弹框，引导认证
					$("#_mealsTypeDiv ._closeSpan").trigger('click'); //提交框隐藏
					$('._attestation').removeClass('hide').bind('click', function() {
						$(this).addClass('hide');
					});
					break;
				case 400:
					toastr.error(data.msg, null, opts)
					break;
				default:
					toastr.error(data.status + ' : 一个新的异常', null, opts)
					break;
			}
		});
	}

	$("._close_nologin_btn").click(function() {
		//TODO 埋点 1.3
		if($(this).text()) {
			zhuge.track('未登录购买_弹窗_先看看',{
				'用户':userName
			});
		} else {
			zhuge.track('未登录购买_弹窗_x按钮',{
				'用户':userName
			});
		}

		$("#nologinBox").fadeOut("fast");
	});
	$("._tologin1_btn").click(function() {
		//TODO 埋点 1.3
		zhuge.track('未登录购买_弹窗_去登录',{
				'用户':userName
			});

		$("#nologinBox").fadeOut("fast");
		var url = window.location.pathname + window.location.search;
		location.href = "/member/login.html?" + url;
	});

	$("._close_noauth_btn").click(function() {
		$("#unauthBox").fadeOut("fast");
	});

	$("._close_goumai_btn").click(function() {
		$("#goumai").fadeOut("fast");
	});

	$("._submit_goumai_btn").click(function() {

		var un = $('._uname').val();
		var cw = $('#contact_way input[class="select-button"]').val();
		var ci = $('._contact_infomaction').val();

		if(un == "") {
			toastr.warning('请填写联系人姓名', null, opts);
			return;
		}

		if(ci == "") {
			toastr.warning('请填写联系方式', null, opts)
			return;
		}

		if(cw == "") {
			toastr.warning('请选择联系方式', null, opts)
			return;
		}

		var sp = $("#service_publisher").val();
		var snc = $("#service_name_cn").val();
		var anc = $("#api_name_cn").val();

		$("#goumai").fadeOut("fast");
		var option = {
			'un': un,
			'info': ci,
			'cw': cw,
			'sp': sp,
			'snc': snc,
			'anc': anc
		};

		$.ajax({
			url: '/Index/ajaxApigm.html',
			type: 'POST',
			dataType: 'json',
			async: true,
			data: option,
			success: function(req) {
				if(req.status == 200) {
					toastr.success(req.msg, null, opts);
				} else {
					toastr.error(req.msg, null, opts);
				}
				return false;
			},
			error: function() {
				toastr.error('系统异常', null, opts);
			}
		});

	});

	$("._toauth_btn").click(function() {
		$("#unauthBox").fadeOut("fast");
		location.href = "/user/auth.html";
	});
	//引导登录--埋点 1.3
	$(document).on('click','._gotoLogin',function(){
		var cur = $(this);
		zhuge.track('未登录购买_弹窗_去登录',{},function(){
			//window.open(cur.attr('href'));
			var curUrl = cur.attr('href');
			window.location.href = curUrl;
		});
		return false;
	}).on('click','._closeRegister',function(){
		zhuge.track('未登录购买_弹窗_关闭');
	}).on('click','._loginBox',function(e){
		if(e.target===$(this)[0]){
			zhuge.track('未登录购买_弹窗_关闭');
		}
	})


	//template中注册小写转大写
	function toUpString(string) {
		return string.toUpperCase();
	}

	//提交 price

	// 地址 pay/ajaxApplyBuy

	$('#_mealsTypeDiv ul').on('click', 'li', function(e) {
		var cur = $(this);
		//TODO 埋点---购买_选择套餐 1.3
		zhuge.track('购买_选择套餐', {
			'用户':userName,
			'套餐名称':cur.find('h5').text(),
			'价格': cur.find('span').text(),
			'所属api': $('a._api_name.active').text(),
			'所属服务': $('._service_id').text()
		})
		$('#_mealsTypeDiv ul li').removeClass('active');
		$(this).addClass('active');
	})
	$('#_mealsTypeDiv').hide();

	$("#_mealsTypeDiv ._closeSpan").on('click', function() {
		//TODO 埋点--关闭提交弹窗 1.3
		zhuge.track('购买_选择套餐_关闭', {
			'用户':userName,
			'套餐名称': $('._mealsType li.active h5').text(),
			'价格': $('._mealsType li.active span').text(),
			'所属api': $('a._api_name.active').text(),
			'所属服务': $('._service_id').text()
		});
	});

	function formSubmit(data) {
		var formInnHTML = ['<form style="display:none" action="' + (data.url || '#') + '" method="' + (data.type || 'post') + '">']
		for(var k in data.data) {
			formInnHTML.push('<input type="text" name="' + k + '" value="' + data.data[k] + '" />');
		}
		formInnHTML.push('<input type="submit" /></form>');
		var submitFrom = $(formInnHTML.join(''))[0];
		//	console.log(submitFrom);
		$('body').append(submitFrom);
		submitFrom.submit();
	}

	/**
	 * get$ 将金额每 4位加个空格
	 * @param {Object} m 	数 	必填
	 * @param {Object} l 	分割符	可选/默认为' '
	 * */
	function separateFouth(m, l) {
		if(typeof m !== 'string') return undefined; // 如果传入的不是字符串则返回 undefined
		var mArr = /^(\d+)(\.?\d*)$/.exec(m), // 正则查询传入的字符串,  1000.00 : [1000.00 ,1000 ,.00]
			new_m = [], // 一个新的数组
			j = 1; // 字符串的位数
		if(!mArr) return undefined; // 传入的内容不合法
		for(var i = mArr[1].length - 1; i >= 0; i--) { // 倒叙检查字符串 / 10000 应该是 1 0000 而不是 1000 0
			new_m.push(mArr[1][i] || mArr[1].charAt(i)); // 将字符串放入新数组 IE7以下必须用charAt来获得字符串的某一个字符
			j % 4 == 0 && new_m.push(l || ' '); //判断j是否能整除4 如果能则多加一个空格
			j++; // 位数增加
		}
		new_m[0] === ' ' && new_m.shift() // 可能出现头部多出现一个空格的情况如 [' ','0','0','0','1']
			// 数组翻转 兼容处理
		if(typeof Array.prototype.reverse === 'function') { // 如果reverse函数可用
			new_m.reverse() // 翻转数组
		} else { //如果reverse函数不可用
			var reveArr = [];
			for(var i = new_m.length - 1; i >= 0; i--) {
				reveArr.push(new_m[i]);
			}
			new_m = reveArr;
		}
		return new_m.join('') + mArr[2]
	}

	function setTab(name, cursel) {
		$('#con_one_1').hide();
		$('#con_one_2').hide();

		$('#parent_con_one_1').removeClass("hr");
		$('#parent_con_one_2').removeClass("hr");

		$("#" + name).show();
		$("#parent_" + name).addClass("hr");
	}
});